package com.dangf.dao;

import java.io.Serializable;
import java.util.List;

/**
 * 泛型Dao
 * @author Hello_海生
 * @date 2015年2月2日
 * @param <T>
 */
public interface BaseDao<T>{
	
	/**
	 * 保存对象
	 * @param user 对象实体
	 * @return 用户ID
	 */
	public Serializable save(T entity);
    
    /**
     * 根据Id删除对象
     * @param id
     */
    public void deleteById(Serializable id);
    
    /**
     * 删除列表
     * @param list
     */
    public void deleteAll(List<T> list);
    
    /**
     * 根据ID查询对象
     * @param id
     * @return
     */
    public T getEntityById(Serializable id);//根据条件查询一个对象
    
    /**
     * 根据某项查实体
     * @param s
     * @param params
     * @return
     */
    public T getEntityByParams(String s,Object params);
    
    /**
     * 根据某项查实体 列表
     * @param s
     * @param params
     * @return
     */
    public List<T> getEntityListByParams(String s,Object params);
    
    /**
     * 获取所有信息
     * @return
     */
    public List<T> getAll();
    
    /**
     * 查询分页列表
     * @param start
     * @param count
     * @return
     */
	public List<T> getListByPage(int start, int count);
    
    
    /**
     * 修改对象
     * @param entity
     */
    public void update(T entity); 
    
    
    /**
     * 保存或修改。。。。ID存在则保存，不存在则修改
     * @param entity
     */
    public void saveOrUpdate(T entity);
    
    /**
     * 批量保存或修改。。。。ID存在则保存，不存在则修改
     * @param entity
     */
    public void saveOrUpdateAll(List<T> list);

}
